【前言】
本系列為個人前端學習之路的學習筆記,在過往的學習過程中累積了很多筆記,如今想藉著IT邦幫忙這個平台做整理+再複習。
本系列標題一律以【】標示該篇文章主要涉及的內容,例如【JavaScript】、【Vue】等等。
若內容有誤,還麻煩各路大神不吝於點出問題,感激不敬。
在JavaScript的世界中,使用=(賦值運算子)來賦值
而==和===則是比較運算子
顧名思義,使用比較運算子時代表我們要去比較
同時,它會回傳一個結果的值給我們
var a = 1;
var b = 2;
console.log(a == b); //回傳false
在這個案例中,我們使用了==來比較a和b相不相等,結果回傳是false
==是所謂的寬鬆相等,而===則可以想成是嚴謹模式
兩者的用途一樣,即比較左右的運算元,並回傳一個值(白話來說就是判斷左右兩邊是否相等)
不過==和===的判斷規則有所不同
因為在JavaScript的世界中,會遇到這樣的情況:
console.log(1 == true); //true
這時候==會跟你說1和true是相等的,這是因為JavaScript會幫你進行型別轉換
此時的true被自動轉型成1,因此1 == 1回傳就會是true了
類似的案例相當多,例如:
console.log([] == 0); //true
甚至還可以找到關於自動轉型的各種梗圖XD
而為了避免這種情況,===就派得上用場啦
===,概念有點像是嚴謹模式,除了內容之外型別也要相等才會回傳true
console.log(1 === true); //false
有等於就有不等於
!=和!==就是相對於==和===,前者是寬鬆不等於,後者是嚴謹的不等於
console.log(true != 1); //false
console.log(true !== 1); //true